package dao

import (
    "context"
    "device-modbus/internal/biz/dal/redis"
    "fmt"
    "time"
)

const (
    DEVICE_PUSH_URL = "device_push_url:"
)

func AddDevicePushUrl(ctx context.Context, iccid string, u URLConfig) {
    redis.Redis.LPush(ctx, GetDeviceKey(iccid), u.URL)
}

func ClearDevicePushUrl(ctx context.Context, iccid string) {
    redis.Redis.Del(ctx, GetDeviceKey(iccid))
}

func GetDeviceKey(iccid string) string {
    return DEVICE_PUSH_URL + iccid
}
func NewID() string {
    return fmt.Sprintf("%d", time.Now().UnixNano())
}

// 设备推送信息
type DevicePush struct {
    MsgId string `json:"msgId"`
    Iccid string `json:"iccid"`
    // 业务时间
    BizTime int64 `json:"bizTime"` // 业务时间 时间戳（秒）
    //批次时间
    BatchTime  int64       `json:"batchTime"` // 批次时间 时间戳（秒）
    Data       interface{} `json:"data"`
    SensorAddr string      `json:"sensorAddr"`
}

// 设备配置接口返回
type DeviceConfig struct {
    Iccid string      `json:"device_id"`
    URLs  []URLConfig `json:"urls"` // 需要转发的目标URL列表

}

// URLs 配置
type URLConfig struct {
    URL string `json:"url"`
    //http 头
    Headers map[string]string `json:"headers"`
    // 传感器地址
    SensorAddr string `json:"sensorAddr"`
}
